/*********************************************************************************************************************
版权所有 (C), 2021,
设计：山亦青
编码：山亦青
版本：V1.0.0.0
完成日期：2021.4.1
说明:
 渐变底色按钮的头文件
代码级别：u
*********************************************************************************************************************/

#ifndef GRADIENTBUTTON_H
#define GRADIENTBUTTON_H

#include <QPushButton>
#include "Base.h"

class GradientButton : public QPushButton
{
    Q_OBJECT

public :
    GradientButton();

    GradientButton(QWidget *parent);

    virtual ~GradientButton();

    // 设置圆角半径
    Void_t setBorderRadius(Length_t radius);

    // 设置按钮文字的大小
    Void_t setFontSize(Int32_t fontSize);

    // 设置是否不是能，true表示不使能，false表示使能
    Void_t setDisabled(Bool_t disabled);

protected :
    Void_t paintEvent(QPaintEvent* e); //重绘事件

private slots:
    void onButtonDown();
    void onButtonUp();

signals:
    void onMouseDown(const GradientButton* pActiveBtn); //鼠标被按下的消息
    void onMouseUp(const GradientButton* pActiveBtn); //鼠标抬起的消息
    void onMouseClick(const GradientButton* pActiveBtn); //鼠标点击的消息

private :
    Bool_t m_IsDown; //当前是否被按下
    Length_t m_BorderRaidus; //圆角半径
    Int32_t m_textSize;
    Bool_t m_IsDisabled;
};

#endif // GRADIENTBUTTON_H
